mod_rewrite, ich raff`s einfach nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mod_rewrite, ich raff`s einfach nicht

    Hallo,

    ich möchte mein Board suchmaschienenfreundlicher gestallten, wir haben etwa 2300 Beträgen die aber von den Suchmaschienen nicht erfassr werden können weil der Link eben zu lang ist. Mir ist vor einigen Tagen dann das Schlagwort mod_rewrite aufgefallen das alle für solche Prozesse für geeignet halte. Ich habe versucht micht damit zu beschäftigen und habe auch schon ganz kleine Erfolge erziehlt, gegen die Könner hier ist das natürlich nichts, mich freut es aber das ich das schonmal hinbekommen habe.

    Meine htaccess sieht derzeit so aus:

    RewriteEngine On
    Options +FollowSymlinks
    RewriteRule ^portal(.*).html$ portal.php
    RewriteRule ^main(.*).html$ main.php
    RewriteRule ^index(.*).html$ index.php [L,QSA]
    Nun habe ich schon einiges im Netz gefunden um lange Links Suchmaschienenfreundlich zu gestalten, meine Ergebnisse waren aber eher...reden wir nicht drüber Ich habe wahnsinnige Probleme diesen Link:

    zu diesen Link:

    oder am liebsten zu diesem Link:

    zu parsen , wäre ehrlich nett wenn mir das ein Könner mal erklären könnte, ich raff`s einfach nicht. Die englischsprachigen Tut`s helfen mir da kaum da mein englisch nicht so gut und erst Recht so ein technisches englisch mies ist . Hoffe mir hilft jemand.
    Zuletzt geändert von Karl_Heinz; 04.03.2004, 10:55.
    Mit freundlichen Grüßen

    Karl Heinz

  • #2
    Code:
    RewriteRule ^thread(.*)-(.*)-(.*).html$ thread.php?threadid=$1&boardid=$2styleid=$3
    probier das mal, die session-id hab ich da rausgelassen

    link 2 bekommst du über
    Code:
    RewriteRule ^thread/(.*)[/]{0,1}$ thread.php?data=$1
    dann musst du $_GET['data'] in der datei thread.php wieder aufsplitten
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      letzteres gehnt natürlich nicht. woher willst du wissen, wie lang die thread id usw. ist.

      Die Lösung davor sollte dir jedoch mit dem Thread suchmaschinenfreundliches Programmieren in diesem Forum leicht fallen.

      Kommentar


      • #4
        Wow...

        Hallo mrhappiness,

        das ging aber sowas von flink, wahnsinn, hier bleib ich

        dann musst du $_GET['data'] in der datei thread.php wieder aufsplitten
        Kannst Du mir das nochmal etwas genauer erklären, wie gesagt das ist ein völlig neues Gebiet für mich, sorry.

        Hallo TobiaZ,

        sorry, die Antworten waren einfach zu schnell. wenn ich weiss wie das aufsplitten geht versuch ich es erstmal und melde mich dann nochmal.
        Zuletzt geändert von Karl_Heinz; 04.03.2004, 11:07.
        Mit freundlichen Grüßen

        Karl Heinz

        Kommentar


        • #5
          ich empfehl dier 2te variante ..
          die rewrite engine erkennt schließlich nicht wo thread aufhört und die board id beginnt .. btw: styleid kannst eigentlich untern tisch fallen lassen ..

          von:
          http://www.abcdefgh.de/thread235-27.html
          http://www.abcdefgh.de/thread235-27/sid$32-stellige-sid$.html

          zu:
          http://www.abcdefgh.de/thread.php?threadid=235&boardid=27&styleid=1&sid=$32-stellige-sid$

          RewriteRule ^thread([0-9]+)-([0-9]+)(?:\/sid([0-9a-zA-z]{32}))?\.html$ thread.php?threadid=$1&boardid=$2&styleid=1&sid=$3

          styleid hab ich mal mit 1 fixiert
          ich kanns weder testen, noch probieren ..
          aber was du vergessen hast, du musst die gefundenen varbiablen auch übergeben ..
          Zuletzt geändert von Coragon Rivito; 04.03.2004, 11:10.
          mfg,
          [color=#0080c0]Coragon[/color]

          Kommentar


          • #6
            wie gesagt, letzteres geht nicht, da die threadid variabel lang ist.

            Kommentar


            • #7
              Versuch das mal:

              http://www.abcdefgh.de/thread/235271...5345n345n32324 ->

              RewriteRule ^thread/([^/]+)/([0-9]+) $ thread.php?data=$1&threadid=$2 [qsa]
              Grüsse,
              Sebastian


              Profil Flex Freelancer
              Twitter twitter.com/flashhilfe
              Web Flash und Flex Community

              Kommentar


              • #8
                Re: ...

                Hallo,

                ich habe nun mal die Regel:
                RewriteRule ^thread([0-9]+)-([0-9]+)(?:\/sid([0-9a-zA-z]{32}))?\.html$ thread.php?threadid=$1&boardid=$2&styleid=1&sid=$3 [QSA]
                versucht, da bekam ich ein 500er Fehler schon bei dem aufrufen der portal.html

                Bei der Regel:
                RewriteRule ^thread/([^/]+)/([0-9]+) $ thread.php?data=$1&threadid=$2 [QSA]
                das selbe.

                Die Regel:
                RewriteRule ^thread(.*)-(.*)-(.*).html$ thread.php?threadid=$1&boardid=$2styleid=$3 [QSA]
                geht ohne Fehlermeldung.

                Meine htaccess sieht nun so aus:

                RewriteEngine On
                Options +FollowSymlinks
                RewriteBase /
                RewriteRule ^portal(.*).html$ portal.php
                RewriteRule ^main(.*).html$ main.php
                RewriteRule ^index(.*).html$ index.php
                RewriteRule ^thread(.*)-(.*)-(.*).html$ thread.php?threadid=$1&boardid=$2styleid=$3 [QSA]
                Wenn ich mal eine in Euren Augen dämliche Frage stellen darf, woran erkenne ich jetzt ob die Threads so umgeschrieben werden das google die indiziert bzw. woran kann ich erkennen das z.B. der Thread:

                nun intern umgeschrieben wird? Gibt es auch gute deutschsprachige Tutseiten zum Thema mod_rewrite, mich interessiert das sehr.

                @ TobiaZ,

                Die Lösung davor sollte dir jedoch mit dem Thread suchmaschinenfreundliches Programmieren in diesem Forum leicht fallen.
                ich finde über die Suchfunktion diesen Thread nicht, kannst Du mir bitte ein Link dahin geben?
                Mit freundlichen Grüßen

                Karl Heinz

                Kommentar


                • #9
                  du hast du glaub ich nen denkfehler

                  der link thread.php?threadid=... wird nicht umgeschrieben!
                  du musst dafür sorgen, dass der link so ausieht: thread1-2-3.html

                  thread1-2-3.html wird dann durch mod_rewrite umgeschrieben und du kannst weiterhin mit deiner thread.php arbeiten

                  kannst dir auch mal diesen link zu geüte führen: http://www.php-resource.de/forum/sho...threadid=12722
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Ups...

                    Hallo mrhappiness,

                    aha, langsam reiht`s sich bei mir ein, den Link werde ich durchlesen. Ich müsste also etwa 2.300 Threads einzeln so umschreiben aber wie oder und wo müsste ich dann z.B. den unteren Thread:

                    umschreiben, will die Regel ja auch mal testen und was passiert mit den neuen Thraed`s? Müssen die auch wieder neu umgeschrieben werden oder gibt es dafür ein Script der einem etwas Arbeit abnimmt?

                    Bin dann mal gespannt ob ich den o.g. Thread der ja dann wohl in etwa so aussehen wird:

                    Mit freundlichen Grüßen

                    Karl Heinz

                    Kommentar


                    • #11
                      lies doch einfach erstmal den Thread. ich denke dann erledigt sich deine Frage von alleine

                      Kommentar


                      • #12
                        hmmm

                        Hallo,

                        ich habe mir den Thread zweimal durchgelesen, der Abraxax ist ehrlich ein Genie, Wahnsinn. Meine htaccess sieht nun so aus:
                        RewriteEngine On
                        Options +FollowSymlinks
                        RewriteBase /
                        RewriteRule ^portal(.*).html$ portal.php
                        RewriteRule ^main(.*).html$ main.php
                        RewriteRule ^index(.*).html$ index.php
                        RewriteRule ^thread(.*)-(.*)-(.*).html$ thread.php?threadid=$1&boardid=$2styleid=$3
                        RewriteRule ^thread(.*)-(.*).html$ thread.php?threadid=$1&boardid=$2
                        so kann ich den Link: http://www.abcdefgh.de/thread.php?threadid=1092&boardid=34

                        direkt über: http://www.abcdefgh.de/thread1092-34.html von meinem Portal aus aufrufen sowie per: http://www.abcdefgh.de/thread1092-34-1.html über das Forum wo der Link so heißt: http://www.abcdefgh/thread.php?threadid=1092&boardid=34&styleid=1 aufrufen, krass. Und die Suchmaschienen können ab jetzt die Threads lesen oder muss ich noch was ändern? Das Board wird über die main.php und das portal über die portal.php angesprochen, eigentlich

                        Wenn ich nun noch ein Unterverzeichniss erstellt habe das http://www.abcdefgh/bla/index.php und ich diese .php in eine .html Datei umwandeln will:
                        RewriteRule ^bla/index(.*).html$ index.php
                        klappt das so nicht, ich habe auch schon mindesten 10 andere Varianten probiert. Hab ich in dem Thread von Abraxax was übersehen?
                        Mit freundlichen Grüßen

                        Karl Heinz

                        Kommentar


                        • #13
                          wofür der platzhalter hinter index?

                          Kommentar


                          • #14
                            Re: hmmm

                            Original geschrieben von Karl_Heinz
                            der Abraxax ist ehrlich ein Genie
                            naja
                            Wenn ich nun noch ein Unterverzeichniss erstellt habe das http://www.abcdefgh/bla/index.php und ich diese .php in eine .html Datei umwandeln will:
                            Code:
                            RewriteRule ^bla/index(.*).html$ index.php
                            klappt das so nicht, ich habe auch schon mindesten 10 andere Varianten probiert.
                            das (.*) brauchst du nicht, statt dessen musst du aber in bla/index.php umschreiben


                            btw: nimm doch bitte [code] statt [quote] um quellcode von dir einzufügen, wenn du quote benutzt, kann man das nicht zitieren
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              Re: ...

                              Hallo,

                              sorry. Also wenn ich Euch jetzt richtig verstanden habe, soll die Regel so aussehen?:
                              Code:
                              RewriteRule bla/index.html$ index.php
                              Nur funktioniert das so auch nicht
                              Mit freundlichen Grüßen

                              Karl Heinz

                              Kommentar

                              Lädt...
                              X